package com.lanou.bean;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class UserExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public UserExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andUIdIsNull() {
            addCriterion("u_id is null");
            return (Criteria) this;
        }

        public Criteria andUIdIsNotNull() {
            addCriterion("u_id is not null");
            return (Criteria) this;
        }

        public Criteria andUIdEqualTo(Integer value) {
            addCriterion("u_id =", value, "uId");
            return (Criteria) this;
        }

        public Criteria andUIdNotEqualTo(Integer value) {
            addCriterion("u_id <>", value, "uId");
            return (Criteria) this;
        }

        public Criteria andUIdGreaterThan(Integer value) {
            addCriterion("u_id >", value, "uId");
            return (Criteria) this;
        }

        public Criteria andUIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("u_id >=", value, "uId");
            return (Criteria) this;
        }

        public Criteria andUIdLessThan(Integer value) {
            addCriterion("u_id <", value, "uId");
            return (Criteria) this;
        }

        public Criteria andUIdLessThanOrEqualTo(Integer value) {
            addCriterion("u_id <=", value, "uId");
            return (Criteria) this;
        }

        public Criteria andUIdIn(List<Integer> values) {
            addCriterion("u_id in", values, "uId");
            return (Criteria) this;
        }

        public Criteria andUIdNotIn(List<Integer> values) {
            addCriterion("u_id not in", values, "uId");
            return (Criteria) this;
        }

        public Criteria andUIdBetween(Integer value1, Integer value2) {
            addCriterion("u_id between", value1, value2, "uId");
            return (Criteria) this;
        }

        public Criteria andUIdNotBetween(Integer value1, Integer value2) {
            addCriterion("u_id not between", value1, value2, "uId");
            return (Criteria) this;
        }

        public Criteria andUNameIsNull() {
            addCriterion("u_name is null");
            return (Criteria) this;
        }

        public Criteria andUNameIsNotNull() {
            addCriterion("u_name is not null");
            return (Criteria) this;
        }

        public Criteria andUNameEqualTo(String value) {
            addCriterion("u_name =", value, "uName");
            return (Criteria) this;
        }

        public Criteria andUNameNotEqualTo(String value) {
            addCriterion("u_name <>", value, "uName");
            return (Criteria) this;
        }

        public Criteria andUNameGreaterThan(String value) {
            addCriterion("u_name >", value, "uName");
            return (Criteria) this;
        }

        public Criteria andUNameGreaterThanOrEqualTo(String value) {
            addCriterion("u_name >=", value, "uName");
            return (Criteria) this;
        }

        public Criteria andUNameLessThan(String value) {
            addCriterion("u_name <", value, "uName");
            return (Criteria) this;
        }

        public Criteria andUNameLessThanOrEqualTo(String value) {
            addCriterion("u_name <=", value, "uName");
            return (Criteria) this;
        }

        public Criteria andUNameLike(String value) {
            addCriterion("u_name like", value, "uName");
            return (Criteria) this;
        }

        public Criteria andUNameNotLike(String value) {
            addCriterion("u_name not like", value, "uName");
            return (Criteria) this;
        }

        public Criteria andUNameIn(List<String> values) {
            addCriterion("u_name in", values, "uName");
            return (Criteria) this;
        }

        public Criteria andUNameNotIn(List<String> values) {
            addCriterion("u_name not in", values, "uName");
            return (Criteria) this;
        }

        public Criteria andUNameBetween(String value1, String value2) {
            addCriterion("u_name between", value1, value2, "uName");
            return (Criteria) this;
        }

        public Criteria andUNameNotBetween(String value1, String value2) {
            addCriterion("u_name not between", value1, value2, "uName");
            return (Criteria) this;
        }

        public Criteria andUPasswordIsNull() {
            addCriterion("u_password is null");
            return (Criteria) this;
        }

        public Criteria andUPasswordIsNotNull() {
            addCriterion("u_password is not null");
            return (Criteria) this;
        }

        public Criteria andUPasswordEqualTo(String value) {
            addCriterion("u_password =", value, "uPassword");
            return (Criteria) this;
        }

        public Criteria andUPasswordNotEqualTo(String value) {
            addCriterion("u_password <>", value, "uPassword");
            return (Criteria) this;
        }

        public Criteria andUPasswordGreaterThan(String value) {
            addCriterion("u_password >", value, "uPassword");
            return (Criteria) this;
        }

        public Criteria andUPasswordGreaterThanOrEqualTo(String value) {
            addCriterion("u_password >=", value, "uPassword");
            return (Criteria) this;
        }

        public Criteria andUPasswordLessThan(String value) {
            addCriterion("u_password <", value, "uPassword");
            return (Criteria) this;
        }

        public Criteria andUPasswordLessThanOrEqualTo(String value) {
            addCriterion("u_password <=", value, "uPassword");
            return (Criteria) this;
        }

        public Criteria andUPasswordLike(String value) {
            addCriterion("u_password like", value, "uPassword");
            return (Criteria) this;
        }

        public Criteria andUPasswordNotLike(String value) {
            addCriterion("u_password not like", value, "uPassword");
            return (Criteria) this;
        }

        public Criteria andUPasswordIn(List<String> values) {
            addCriterion("u_password in", values, "uPassword");
            return (Criteria) this;
        }

        public Criteria andUPasswordNotIn(List<String> values) {
            addCriterion("u_password not in", values, "uPassword");
            return (Criteria) this;
        }

        public Criteria andUPasswordBetween(String value1, String value2) {
            addCriterion("u_password between", value1, value2, "uPassword");
            return (Criteria) this;
        }

        public Criteria andUPasswordNotBetween(String value1, String value2) {
            addCriterion("u_password not between", value1, value2, "uPassword");
            return (Criteria) this;
        }

        public Criteria andUSexIsNull() {
            addCriterion("u_sex is null");
            return (Criteria) this;
        }

        public Criteria andUSexIsNotNull() {
            addCriterion("u_sex is not null");
            return (Criteria) this;
        }

        public Criteria andUSexEqualTo(String value) {
            addCriterion("u_sex =", value, "uSex");
            return (Criteria) this;
        }

        public Criteria andUSexNotEqualTo(String value) {
            addCriterion("u_sex <>", value, "uSex");
            return (Criteria) this;
        }

        public Criteria andUSexGreaterThan(String value) {
            addCriterion("u_sex >", value, "uSex");
            return (Criteria) this;
        }

        public Criteria andUSexGreaterThanOrEqualTo(String value) {
            addCriterion("u_sex >=", value, "uSex");
            return (Criteria) this;
        }

        public Criteria andUSexLessThan(String value) {
            addCriterion("u_sex <", value, "uSex");
            return (Criteria) this;
        }

        public Criteria andUSexLessThanOrEqualTo(String value) {
            addCriterion("u_sex <=", value, "uSex");
            return (Criteria) this;
        }

        public Criteria andUSexLike(String value) {
            addCriterion("u_sex like", value, "uSex");
            return (Criteria) this;
        }

        public Criteria andUSexNotLike(String value) {
            addCriterion("u_sex not like", value, "uSex");
            return (Criteria) this;
        }

        public Criteria andUSexIn(List<String> values) {
            addCriterion("u_sex in", values, "uSex");
            return (Criteria) this;
        }

        public Criteria andUSexNotIn(List<String> values) {
            addCriterion("u_sex not in", values, "uSex");
            return (Criteria) this;
        }

        public Criteria andUSexBetween(String value1, String value2) {
            addCriterion("u_sex between", value1, value2, "uSex");
            return (Criteria) this;
        }

        public Criteria andUSexNotBetween(String value1, String value2) {
            addCriterion("u_sex not between", value1, value2, "uSex");
            return (Criteria) this;
        }

        public Criteria andUTellIsNull() {
            addCriterion("u_tell is null");
            return (Criteria) this;
        }

        public Criteria andUTellIsNotNull() {
            addCriterion("u_tell is not null");
            return (Criteria) this;
        }

        public Criteria andUTellEqualTo(Integer value) {
            addCriterion("u_tell =", value, "uTell");
            return (Criteria) this;
        }

        public Criteria andUTellNotEqualTo(Integer value) {
            addCriterion("u_tell <>", value, "uTell");
            return (Criteria) this;
        }

        public Criteria andUTellGreaterThan(Integer value) {
            addCriterion("u_tell >", value, "uTell");
            return (Criteria) this;
        }

        public Criteria andUTellGreaterThanOrEqualTo(Integer value) {
            addCriterion("u_tell >=", value, "uTell");
            return (Criteria) this;
        }

        public Criteria andUTellLessThan(Integer value) {
            addCriterion("u_tell <", value, "uTell");
            return (Criteria) this;
        }

        public Criteria andUTellLessThanOrEqualTo(Integer value) {
            addCriterion("u_tell <=", value, "uTell");
            return (Criteria) this;
        }

        public Criteria andUTellIn(List<Integer> values) {
            addCriterion("u_tell in", values, "uTell");
            return (Criteria) this;
        }

        public Criteria andUTellNotIn(List<Integer> values) {
            addCriterion("u_tell not in", values, "uTell");
            return (Criteria) this;
        }

        public Criteria andUTellBetween(Integer value1, Integer value2) {
            addCriterion("u_tell between", value1, value2, "uTell");
            return (Criteria) this;
        }

        public Criteria andUTellNotBetween(Integer value1, Integer value2) {
            addCriterion("u_tell not between", value1, value2, "uTell");
            return (Criteria) this;
        }

        public Criteria andUMailboxIsNull() {
            addCriterion("u_mailbox is null");
            return (Criteria) this;
        }

        public Criteria andUMailboxIsNotNull() {
            addCriterion("u_mailbox is not null");
            return (Criteria) this;
        }

        public Criteria andUMailboxEqualTo(String value) {
            addCriterion("u_mailbox =", value, "uMailbox");
            return (Criteria) this;
        }

        public Criteria andUMailboxNotEqualTo(String value) {
            addCriterion("u_mailbox <>", value, "uMailbox");
            return (Criteria) this;
        }

        public Criteria andUMailboxGreaterThan(String value) {
            addCriterion("u_mailbox >", value, "uMailbox");
            return (Criteria) this;
        }

        public Criteria andUMailboxGreaterThanOrEqualTo(String value) {
            addCriterion("u_mailbox >=", value, "uMailbox");
            return (Criteria) this;
        }

        public Criteria andUMailboxLessThan(String value) {
            addCriterion("u_mailbox <", value, "uMailbox");
            return (Criteria) this;
        }

        public Criteria andUMailboxLessThanOrEqualTo(String value) {
            addCriterion("u_mailbox <=", value, "uMailbox");
            return (Criteria) this;
        }

        public Criteria andUMailboxLike(String value) {
            addCriterion("u_mailbox like", value, "uMailbox");
            return (Criteria) this;
        }

        public Criteria andUMailboxNotLike(String value) {
            addCriterion("u_mailbox not like", value, "uMailbox");
            return (Criteria) this;
        }

        public Criteria andUMailboxIn(List<String> values) {
            addCriterion("u_mailbox in", values, "uMailbox");
            return (Criteria) this;
        }

        public Criteria andUMailboxNotIn(List<String> values) {
            addCriterion("u_mailbox not in", values, "uMailbox");
            return (Criteria) this;
        }

        public Criteria andUMailboxBetween(String value1, String value2) {
            addCriterion("u_mailbox between", value1, value2, "uMailbox");
            return (Criteria) this;
        }

        public Criteria andUMailboxNotBetween(String value1, String value2) {
            addCriterion("u_mailbox not between", value1, value2, "uMailbox");
            return (Criteria) this;
        }

        public Criteria andURoleIsNull() {
            addCriterion("u_role is null");
            return (Criteria) this;
        }

        public Criteria andURoleIsNotNull() {
            addCriterion("u_role is not null");
            return (Criteria) this;
        }

        public Criteria andURoleEqualTo(Integer value) {
            addCriterion("u_role =", value, "uRole");
            return (Criteria) this;
        }

        public Criteria andURoleNotEqualTo(Integer value) {
            addCriterion("u_role <>", value, "uRole");
            return (Criteria) this;
        }

        public Criteria andURoleGreaterThan(Integer value) {
            addCriterion("u_role >", value, "uRole");
            return (Criteria) this;
        }

        public Criteria andURoleGreaterThanOrEqualTo(Integer value) {
            addCriterion("u_role >=", value, "uRole");
            return (Criteria) this;
        }

        public Criteria andURoleLessThan(Integer value) {
            addCriterion("u_role <", value, "uRole");
            return (Criteria) this;
        }

        public Criteria andURoleLessThanOrEqualTo(Integer value) {
            addCriterion("u_role <=", value, "uRole");
            return (Criteria) this;
        }

        public Criteria andURoleIn(List<Integer> values) {
            addCriterion("u_role in", values, "uRole");
            return (Criteria) this;
        }

        public Criteria andURoleNotIn(List<Integer> values) {
            addCriterion("u_role not in", values, "uRole");
            return (Criteria) this;
        }

        public Criteria andURoleBetween(Integer value1, Integer value2) {
            addCriterion("u_role between", value1, value2, "uRole");
            return (Criteria) this;
        }

        public Criteria andURoleNotBetween(Integer value1, Integer value2) {
            addCriterion("u_role not between", value1, value2, "uRole");
            return (Criteria) this;
        }

        public Criteria andUTimeIsNull() {
            addCriterion("u_time is null");
            return (Criteria) this;
        }

        public Criteria andUTimeIsNotNull() {
            addCriterion("u_time is not null");
            return (Criteria) this;
        }

        public Criteria andUTimeEqualTo(Date value) {
            addCriterion("u_time =", value, "uTime");
            return (Criteria) this;
        }

        public Criteria andUTimeNotEqualTo(Date value) {
            addCriterion("u_time <>", value, "uTime");
            return (Criteria) this;
        }

        public Criteria andUTimeGreaterThan(Date value) {
            addCriterion("u_time >", value, "uTime");
            return (Criteria) this;
        }

        public Criteria andUTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("u_time >=", value, "uTime");
            return (Criteria) this;
        }

        public Criteria andUTimeLessThan(Date value) {
            addCriterion("u_time <", value, "uTime");
            return (Criteria) this;
        }

        public Criteria andUTimeLessThanOrEqualTo(Date value) {
            addCriterion("u_time <=", value, "uTime");
            return (Criteria) this;
        }

        public Criteria andUTimeIn(List<Date> values) {
            addCriterion("u_time in", values, "uTime");
            return (Criteria) this;
        }

        public Criteria andUTimeNotIn(List<Date> values) {
            addCriterion("u_time not in", values, "uTime");
            return (Criteria) this;
        }

        public Criteria andUTimeBetween(Date value1, Date value2) {
            addCriterion("u_time between", value1, value2, "uTime");
            return (Criteria) this;
        }

        public Criteria andUTimeNotBetween(Date value1, Date value2) {
            addCriterion("u_time not between", value1, value2, "uTime");
            return (Criteria) this;
        }

        public Criteria andUStateIsNull() {
            addCriterion("u_state is null");
            return (Criteria) this;
        }

        public Criteria andUStateIsNotNull() {
            addCriterion("u_state is not null");
            return (Criteria) this;
        }

        public Criteria andUStateEqualTo(Integer value) {
            addCriterion("u_state =", value, "uState");
            return (Criteria) this;
        }

        public Criteria andUStateNotEqualTo(Integer value) {
            addCriterion("u_state <>", value, "uState");
            return (Criteria) this;
        }

        public Criteria andUStateGreaterThan(Integer value) {
            addCriterion("u_state >", value, "uState");
            return (Criteria) this;
        }

        public Criteria andUStateGreaterThanOrEqualTo(Integer value) {
            addCriterion("u_state >=", value, "uState");
            return (Criteria) this;
        }

        public Criteria andUStateLessThan(Integer value) {
            addCriterion("u_state <", value, "uState");
            return (Criteria) this;
        }

        public Criteria andUStateLessThanOrEqualTo(Integer value) {
            addCriterion("u_state <=", value, "uState");
            return (Criteria) this;
        }

        public Criteria andUStateIn(List<Integer> values) {
            addCriterion("u_state in", values, "uState");
            return (Criteria) this;
        }

        public Criteria andUStateNotIn(List<Integer> values) {
            addCriterion("u_state not in", values, "uState");
            return (Criteria) this;
        }

        public Criteria andUStateBetween(Integer value1, Integer value2) {
            addCriterion("u_state between", value1, value2, "uState");
            return (Criteria) this;
        }

        public Criteria andUStateNotBetween(Integer value1, Integer value2) {
            addCriterion("u_state not between", value1, value2, "uState");
            return (Criteria) this;
        }

        public Criteria andURemarkIsNull() {
            addCriterion("u_remark is null");
            return (Criteria) this;
        }

        public Criteria andURemarkIsNotNull() {
            addCriterion("u_remark is not null");
            return (Criteria) this;
        }

        public Criteria andURemarkEqualTo(String value) {
            addCriterion("u_remark =", value, "uRemark");
            return (Criteria) this;
        }

        public Criteria andURemarkNotEqualTo(String value) {
            addCriterion("u_remark <>", value, "uRemark");
            return (Criteria) this;
        }

        public Criteria andURemarkGreaterThan(String value) {
            addCriterion("u_remark >", value, "uRemark");
            return (Criteria) this;
        }

        public Criteria andURemarkGreaterThanOrEqualTo(String value) {
            addCriterion("u_remark >=", value, "uRemark");
            return (Criteria) this;
        }

        public Criteria andURemarkLessThan(String value) {
            addCriterion("u_remark <", value, "uRemark");
            return (Criteria) this;
        }

        public Criteria andURemarkLessThanOrEqualTo(String value) {
            addCriterion("u_remark <=", value, "uRemark");
            return (Criteria) this;
        }

        public Criteria andURemarkLike(String value) {
            addCriterion("u_remark like", value, "uRemark");
            return (Criteria) this;
        }

        public Criteria andURemarkNotLike(String value) {
            addCriterion("u_remark not like", value, "uRemark");
            return (Criteria) this;
        }

        public Criteria andURemarkIn(List<String> values) {
            addCriterion("u_remark in", values, "uRemark");
            return (Criteria) this;
        }

        public Criteria andURemarkNotIn(List<String> values) {
            addCriterion("u_remark not in", values, "uRemark");
            return (Criteria) this;
        }

        public Criteria andURemarkBetween(String value1, String value2) {
            addCriterion("u_remark between", value1, value2, "uRemark");
            return (Criteria) this;
        }

        public Criteria andURemarkNotBetween(String value1, String value2) {
            addCriterion("u_remark not between", value1, value2, "uRemark");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}